package com.hexinfo.dmpro.sparing.service;

import cn.hutool.core.io.file.FileAppender;
import com.hexinfo.dmpro.sparing.dto.TableDistCPDTO;
import com.hexinfo.dmpro.sparing.dto.WhereScriptDTO;

import java.util.List;
import java.util.Set;
import java.util.concurrent.Future;

public interface LsFilterSouService {

    Future<Boolean> allLsFilter(List<TableDistCPDTO> tableDistCPDTOs, TableDistCPDTO tableDistCPDTO,
                                FileAppender heatlog, FileAppender tableLog, List<TableDistCPDTO> wholeTableDistCPDTOs);

    List<String> backupData(List<TableDistCPDTO> tableDistCPDTOs,String souName, FileAppender heatlog,String logId,
                    List<TableDistCPDTO> wholeTableDistCPDTOs, Set<String> syncRuleConfSet);

    String allLsFilterWgToUat(TableDistCPDTO tableDistCPDTO);

    void dataContrast(String sourceDataName, FileAppender heatlog, List<WhereScriptDTO> whereScriptDTOS);

    List<String> dataRefresh(String sourceDataName, String backupSort, FileAppender heatlog);

    void updateLsStatusMap(String souName,String status);

    String getLsStatus(String souName);

    void delLsStatus(String souName);

    List<TableDistCPDTO> getTableDistCPDTOMap(String souName);
}
